package com.zyf;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.client.AsyncConnection;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;

import java.io.IOException;
import java.util.concurrent.CompletableFuture;

/**
 * @author Malegod_xiaofei
 * @create 2024-08-27-21:18
 */
public class HBaseConnection {

    // 声明一个静态属性
    public static Connection connection;

    static {
        // 1.创建连接
        // 默认使用同步连接
        try {
            // 使用读取本地文件的形式添加参数
            connection = ConnectionFactory.createConnection();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void closeConnection() throws IOException {
        // 判断连接是否为 null
        if (connection != null) {
            connection.close();
        }
    }

    public static void main(String[] args) throws IOException {


        /*// 可以使用异步连接
        CompletableFuture<AsyncConnection> connection1 = ConnectionFactory.createAsyncConnection(conf);

        // 4.使用连接
        System.out.println(connection);

        // 5.关闭连接
        connection.close();*/

        // 直接使用创建好的链接
        // 不要在main线程里面单独创建
        System.out.println(HBaseConnection.connection);

        // 在 main 线程的最后关闭连接
        HBaseConnection.closeConnection();
    }
}
